Optee 是一種安全的架構,主要提供韌體一個安全的執行環境,在 ST MPU 當中他會包含在 OpenSTLinux BSP 當中 ,後續我們幾乎不會對他修改。Optee 這個框架也並不是必須要選,也可以不使用 Optee 來作為執行的環境。
但為什麼在ST當中會使用 OPTEE 作為官方的框架呢?
主要是因為Optee可以提供安全性的啟動方式,同時他也支援系統設定、韌體更新。透過FIP檔案可以很簡單的更新,並不會去影響到其他的檔案。
我們可以透過 CFG_STM32MP_PROFILE=system_services 這個變數來啟用 Optee 的資源管理功能。
下圖是官方說明的 Optee所提供的一些 Servuce , 某一些在 ST MPU 系列已經預設為啟用,但是我們可以透過相關的 CGF_xxx 來啟用或是停用這個功能。
當我們使用 Optee 的時候,TF-A 當中必須要設定一些變數 ,也就是說要讓 TF-A 知道目前 Optee 是由板載的 SYSRAM 啟動,而不是從外部的DDR啟動,可以去設定 STM32MP1_OPTEE_IN_SYSRAM=1讓完成上述的動作。
Optee 這部分後續改動不太多,也不太需要改變這個階段的設備樹啟動方式等等,可能板載的DDR 大小不同需要做修改,其餘的幾乎不用去改變。